package com.redpack.redpost.struts.action.admin;

import java.util.ArrayList;
import java.util.List;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

//import com.itextpdf.text.Document;
import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;


import com.redpack.redpost.struts.form.admin.ReporteDinamicoForm;
import com.redpack.redpost.util.dao.*;
import com.redpack.redpost.util.to.*;

import java.util.ArrayList;
import java.util.List;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;



import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;


public class ReporteDinamico  extends Action{
	public ActionForward execute(
			ActionMapping mapping, 
			ActionForm form, 
			HttpServletRequest request, 
			HttpServletResponse response) throws Exception {
		String fecha_inicio="",fecha_fin="",fecha_registro = "",nip = "",nombre = "",apellidos="",direccion_personal = "",forma_pago = "",fecha_arribo = "",numero_orden = "",guia_arribo = "",guia_Redpack = "",
				descripcion_mercancia = "",valor_declarado = "",numero_de_paquetes = "",peso_real = "",peso_dimensional = "",impuestos = "",manejo = "",envio = "",cargos_adicionales = "",
		total_pagado = "",estatus = "",fecha_de_estatus = "",dias_en_bodega = "",fecha_de_pago = "",puntos_utilizados = "",puntos_pendientes = "",
				telefono_casa="",telefono_oficiona="",telefono_movil="",email="";
		
		List _ReporteArribo = new ArrayList();
		
		
		boolean logginVal = generalUtil.isLoggedInAdmin(request);
		if(logginVal!=true){
			return mapping.findForward("noLogin") ;
		}
		
		
		ReporteDinamicoForm f = (ReporteDinamicoForm)form;
		
		if(f != null){
			fecha_inicio = f.getFecha_inicio();
			fecha_fin = f.getFecha_fin();
			fecha_registro = f.getFecha_registro();
			nip = f.getNip();
			nombre = f.getNombre();
			apellidos = f.getApellidos();
			direccion_personal = f.getDireccion_personal();
			forma_pago = f.getForma_pago();
			fecha_arribo = f.getFecha_arribo();
			numero_orden = f.getNumero_orden();
			guia_arribo = f.getGuia_arribo();
			guia_Redpack = f.getGuia_Redpack();
			descripcion_mercancia = f.getDescripcion_mercancia();
			valor_declarado = f.getValor_declarado();
			numero_de_paquetes = f.getNumero_de_paquetes();
			peso_real = f.getPeso_real();
			peso_dimensional = f.getPeso_dimensional();
			impuestos = f.getImpuestos();
			manejo = f.getManejo();
			envio = f.getEnvio();
			cargos_adicionales = f.getCargos_adicionales();
			total_pagado = f.getTotal_pagado();
			
			if( f.getEstatus() != null )
				estatus = f.getEstatus();
			
			fecha_de_estatus = f.getFecha_de_estatus();
			dias_en_bodega = f.getDias_en_bodega();
			fecha_de_pago = f.getFecha_de_pago();
			puntos_utilizados = f.getPuntos_utilizados();
			puntos_pendientes = f.getPuntos_pendientes();
			telefono_casa = f.getTelefono_casa(); 
		    telefono_oficiona = f.getTelefono_oficiona(); 
		    telefono_movil = f.getTelefono_movil(); 
		    email = f.getEmail();
			
			_ReporteArribo = ReporteArriboDao.getReporteArriboDinamico(fecha_inicio,fecha_fin,fecha_registro,nip,nombre,apellidos,direccion_personal,forma_pago,fecha_arribo,numero_orden,guia_arribo,guia_Redpack,descripcion_mercancia,valor_declarado,numero_de_paquetes,peso_real,peso_dimensional,impuestos,manejo,envio,cargos_adicionales,total_pagado,estatus,fecha_de_estatus,dias_en_bodega,fecha_de_pago,puntos_utilizados,puntos_pendientes);
			
		}
		
		request.setAttribute("fecha_inicio",fecha_inicio);
		request.setAttribute("fecha_fin",fecha_fin);
		request.setAttribute("fecha_registro",fecha_registro);
		request.setAttribute("nip",nip);
		request.setAttribute("nombre",nombre);
		request.setAttribute("apellidos",apellidos);
		request.setAttribute("direccion_personal",direccion_personal);
		request.setAttribute("forma_pago",forma_pago);
		request.setAttribute("fecha_arribo",fecha_arribo);
		request.setAttribute("numero_orden",numero_orden);
		request.setAttribute("guia_arribo",guia_arribo);
		request.setAttribute("guia_Redpack",guia_Redpack);
		request.setAttribute("descripcion_mercancia",descripcion_mercancia);
		request.setAttribute("valor_declarado",valor_declarado);
		request.setAttribute("numero_de_paquetes",numero_de_paquetes);
		request.setAttribute("peso_real",peso_real);
		request.setAttribute("peso_dimensional",peso_dimensional);
		request.setAttribute("impuestos",impuestos);
		request.setAttribute("manejo",manejo);
		request.setAttribute("envio",envio);
		request.setAttribute("cargos_adicionales",cargos_adicionales);
		request.setAttribute("total_pagado",total_pagado);
		request.setAttribute("estatus",estatus);
		request.setAttribute("fecha_de_estatus",fecha_de_estatus);
		request.setAttribute("dias_en_bodega",dias_en_bodega);
		request.setAttribute("fecha_de_pago",fecha_de_pago);
		request.setAttribute("puntos_utilizados",puntos_utilizados);
		request.setAttribute("puntos_pendientes",puntos_pendientes);
		request.setAttribute("telefono_casa",telefono_casa);
		request.setAttribute("telefono_oficiona",telefono_oficiona);
		request.setAttribute("telefono_movil",telefono_movil);
		request.setAttribute("email",email);
		
		List _UsuarioRedpost= new ArrayList(); 
		_UsuarioRedpost = UsuarioRedpostDao.getUsuarioRedpost();

		request.setAttribute("list_Usuario", _UsuarioRedpost);
		
		
		List _EstatusArribo = new ArrayList(); 
		_EstatusArribo = EstatusArriboDao.getEstatusArribo();
		
		request.setAttribute("EstatusArribo", _EstatusArribo);
		
		
		request.setAttribute("list_RepArriboArr",_ReporteArribo);	
		
		return mapping.findForward("success") ;
	}

}
